﻿// (c) Copyright Damian Mehers http://damianblog.com/
// This source is subject to the Microsoft Public License.
// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
// All other rights reserved.

using System;
using System.Globalization;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Win32;

namespace MceFM.Code {
  public class Settings {

    private readonly string unknownImageUrl = "resx://MceFM/MceFM.Resources/UnknownAlbum.png";

    private readonly int defaultRepeatCount = 20;

    private readonly string songUrlFormatString = "{0} {3} {1} similar {2}s";

    private readonly string globalRegistryRoot = @"HKEY_LOCAL_MACHINE\Software\Atadore\MceFM\";

    private readonly string registryRoot = @"HKEY_CURRENT_USER\Software\Atadore\MceFM\";

    private readonly string usernameRegKey = "lastFmUsername";

    private readonly string passwordHashRegKey = "lastFmPasswordHash";

    private readonly string queueUpCountRegKey = "queueUpCount";

    private string categoryEntryPoint = "Category";

    private readonly string backgroundCategory = "background";

    private readonly string moreWithThisArtistCategory = @"more with this\audio\artist";

    private readonly string moreWithThisAlbumCategory = @"more with this\audio\album";

    private readonly string moreWithThisSongCategory = @"more with this\audio\song";

    private readonly string moreWithThisGenreCategory = @"more with this\audio\genre";

    private readonly string playPage = "resx://MceFM/MceFM.Resources/Play";

    private readonly string mainPage = "resx://MceFM/MceFM.Resources/Main";

    private readonly string optionsPage = "resx://MceFM/MceFM.Resources/Options";

    private readonly string queuePage = "resx://MceFM/MceFM.Resources/ViewQueue";

    private readonly string playArtistMcmlString = "Artist";

    private readonly string playGenreMcmlString = "Tag";

    private readonly string albumArtistMediaContextString = "AlbumArtist";

    private readonly string genreMediaContextString = "Genre";

    private readonly string dialogTitle = "MceFM";

    private readonly string dialogTitleForErrors = "MceFM Error";

    private readonly string enterUsernamePassword = "Please first enter your Last.fm username and password";

    private readonly string logonFailedStartString = "Failed to logon";


    public string LogonFailedStartString {
      get {
        return logonFailedStartString;
      }
    }

    public string EnterUsernamePassword {
      get {
        return enterUsernamePassword;
      }
    }

    public string DialogTitleForErrors {
      get {
        return dialogTitleForErrors;
      }
    }

    public string DialogTitle {
      get {
        return dialogTitle;
      }
    }

    public string GenreMediaContextString {
      get {
        return genreMediaContextString;
      }
    }

    public string AlbumArtistMediaContextString {
      get {
        return albumArtistMediaContextString;
      }
    }

    public string PlayGenreMcmlString {
      get {
        return playGenreMcmlString;
      }
    }

    public string PlayPage {
      get {
        return playPage;
      }
    }

    public string MainPage {
      get {
        return mainPage;
      }
    }

    public string OptionsPage {
      get {
        return optionsPage;
      }
    }

    public string QueuePage {
      get {
        return queuePage;
      }
    }

    public string MoreWithThisGenreCategory {
      get {
        return moreWithThisGenreCategory;
      }
    }

    public string MoreWithThisArtistCategory {
      get {
        return moreWithThisArtistCategory;
      }
    }

    public string BackgroundCategory {
      get {
        return backgroundCategory;
      }
    }

    public string CategoryEntryPoint {
      get {
        return categoryEntryPoint;
      }
      set {
        categoryEntryPoint = value;
      }
    }


    public string QueueUpCountRegKey {
      get {
        return queueUpCountRegKey;
      }
    }

    public string PasswordHashRegKey {
      get {
        return passwordHashRegKey;
      }
    }

    public string UsernameRegKey {
      get {
        return usernameRegKey;
      }
    }

    public string GlobalRegistryRoot {
      get {
        return globalRegistryRoot;
      }
    }

    public string RegistryRoot {
      get {
        return registryRoot;
      }
    }

    public string PlayArtistMcmlString {
      get {
        return playArtistMcmlString;
      }
    }

    public string SongUrlFormatString {
      get {
        return songUrlFormatString;
      }
    }

    public int DefaultRepeatCount {
      get {
        return defaultRepeatCount;
      }
    }

    public string UnknownImageUrl {
      get {
        return unknownImageUrl;
      }
    }

    public string MoreWithThisAlbumCategory {
      get {return moreWithThisAlbumCategory;}
    }

    public string MoreWithThisSongCategory {
      get {return moreWithThisSongCategory;}
    }

  }
}
